package seleniumdemo.common.driver;

import lombok.Data;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.util.Collections;


/******
 * 该类主要用于做浏览器的选择
 * 现在支持3种浏览器：chrome,firefox,IE9
 */
@Data
public class SelectDriver {

    //传入浏览器的类型，选择使用的浏览器
    public WebDriver getDriver(String brower) {
        if ("chrome".equalsIgnoreCase(brower)) {
            //新增一个预操作对象,解决浏览器窗口显示被自动化软件控制的问题
            ChromeOptions options = new ChromeOptions();
            //76以下版本的chrom
//            options.addArguments("disable-infobars");
            //76以上版本
            options.setExperimentalOption("useAutomationExtension", false);
            options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
            //使得webdriver打开的浏览器保持登录状态(注意:User Data需要复制黏贴一个新的重命名一下,否则原来打开的浏览器将不能使用)
            options.addArguments("user-data-dir=C:\\Users\\guoying\\AppData\\Local\\Google\\Chrome\\User Data1");
            //浏览器驱动名称和路径属性//src/main/resources/driver/chromedriver.exe
            System.setProperty("webdriver.chrome.driver", "src/main/resources/driver/chromedriver.exe");
            WebDriver driver = new ChromeDriver(options);
            return driver;
        } else if ("firefox".equalsIgnoreCase(brower)) {
            //设置浏览器属性
            System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
            //获取浏览器驱动名称和路径
            System.setProperty("webdriver.gecko.driver", "src/main/resources/driver/geckodriver.exe");
            WebDriver driver = new FirefoxDriver();
            return driver;
        } else {
            System.err.println("仅支持chrome,firefox浏览器！");
            return null;
        }

    }
}
